-
Notifications
You must be signed in to change notification settings - Fork 4
Adopt Governance Improvement Process #22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Adopt Governance Improvement Process #22
Conversation
Signed-off-by: Robert Young <robertyoungnz@gmail.com>
GOVERNANCE.md
Outdated
| 7. **Review:** We follow the [Decision-Making](#decision-making) policy. | ||
| * Discussion, objections, and voting occur in the PR comments. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Big ambiguity in this process is how we get from Submitted to Finalized. Should we be defining voting windows (who decides if a vote is initiated?)
We also dont want Lazy Consensus to mean PRs with no approvals or interactions from any Code Owners are approved. Maybe we need to caveat it saying every Proposal PR needs a Code Owner approval.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
alternatively maybe it's okay to leave it less-well-defined, we just make sure it's clear what the merge conditions are and don't define how to get there,
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think, though worth documenting, that code owners are implicitly bound by the decision making process and thus are obliged to merge a change if it passes the vote.
Having said that, I'm not sure we should really use the term code owners in this repository as its really org rules, it should be something like org owners. The Project board? Raising too many questions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeap this would be my first Proposal after this :) I think we should define a Commiter/Code Owner (technical steward) and Maintainer (project governor) split.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thinking on this. Since most proposals would likely have some back-and-forth and edits before they are acceptable. Maybe we do need a signal that the "vote" or beginning of lazy consensus has begun. Maybe it should say something like "A Code Owner declares the decision period has begun, at which point our Decision Making Process begins".
This eliminates my other concern that anyone could create a PR, have it sit idle for some weeks, and claim it was accepted by lazy consensus.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
have pushed that up. we don't redefine any decision making rules, just say a Code Owner has to declare that a Decision Making Period has begun.
SamBarker
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First pass
| * The Proposer selects the next available number based on existing files in the `decision-records` directory and the | ||
| ids used by open PRs. | ||
| * *Note:* If a numbering collision occurs with another open PR, the newer PR must update its ID to the next | ||
| available number. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think collision detection needs to be eager rather than on merge. We don't want people discussing GIP-012 and that potentially referring to two different things.
Also if we think about how this works in Kafka the number is allocated eagerly regardless of outcome.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yep the ids are definitely a pain, not sure what would be a cheap fix, create an issue first and use the issue number? Have an action workflow that checks your id is unique across PRs? Create PR with placeholder than edit in the PR number.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
decided in call to leave id selection as a Proposer responsibility, we don't anticipate a flood of these.
I think the process as described is eager, you pick a unique id at Proposal creation time. The note tells you what to do if you mess it up, update the id in the newer PR.
GOVERNANCE.md
Outdated
| 8. **Finalization:** | ||
| * **If Accepted:** The Proposer must update the GDR file status to "Accepted" and record the ratification date. A | ||
| Code Owner will then merge the PR. | ||
| * **If Rejected/Stale:** If a proposal is rejected or remains inactive for two months, the PR will be closed. No newline at end of file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need to finalise either way even if rejected we should merge - to prevent ID recycling.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mm, bit of a fiddle, the proposal is decision record and edits to the canonical Governance files come in the same PR. So you'd have to split out just the decision record.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
was pondering whether we should split them into proposal PR and then after approval make the edits in another PR. but it feels like they're good to land in a single PR, proving that our policy changed exactly in lockstep with accepting a proposal and avoiding having to vote on the proposal and then the implementation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if we used the PR # (at the cost of some hassle editing it in after creation) then we don't have this recycling problem.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mm, bit of a fiddle, the proposal is decision record and edits to the canonical Governance files come in the same PR. So you'd have to split out just the decision record.
When you put it like that I think the case for merging all is even stronger. Its record of the decision not to make a specific change. We should merge that so we have a higher bar for re-visiting a particular decision, e.g. expressing some rational for what has changed since the last record.
GOVERNANCE.md
Outdated
| 6. **Template:** New GDR files must use the template located | ||
| at [decision-records/TEMPLATE.md](decision-records/TEMPLATE.md). | ||
| 7. **Review:** We follow the [Decision-Making](#decision-making) policy. | ||
| * Discussion, objections, and voting occur in the PR comments. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can configure haus-rules to help with this.
Though I think we might need to be a little careful with eager votes. I.e. clear votes on significant re-draft. Or when voting is re-opened.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we saying lazy consensus applies to GIPs too, with us only resorting to votes when required? I think that follows the 'light weight' spirit of Common Haus. If it is a decided a vote needs to occur on a particular GIP who gets to vote? All active contributors- or a smaller sub-set?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I think we have defined already that Lazy Consensus is step 1 of our general decision making process, It would be good if we could avoid redefining that part, and just have this GIP process point to our general decision process.
But as a guard rail, I think that a Code Owner should have to declare that the Decision Making Period is open for a GIP. This means that Proposals would need to get a Project member on board.
decision-records/GIP-000-adopt-governance-improvement-process.md
Outdated
Show resolved
Hide resolved
decision-records/GIP-000-adopt-governance-improvement-process.md
Outdated
Show resolved
Hide resolved
GOVERNANCE.md
Outdated
| community review. | ||
| 6. **Template:** New GDR files must use the template located | ||
| at [decision-records/TEMPLATE.md](decision-records/TEMPLATE.md). | ||
| 7. **Review:** We follow the [Decision-Making](#decision-making) policy. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We possibly need to refine our voting rules. They currently only give code owners any voting rights.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeahp, bit of chicken and egg. I was spurred to make this PR by wondering how we could introduce different roles or change the voting rights.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think thats a bad outcome of this PR. We use the currently documented process to endorse a version of this and then expand the franchise etc.
| * Knowing when to ask for help or seek consensus. | ||
| * An indication of being committed to the long term success of the project. | ||
|
|
||
| ## Governance Improvement Process |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a title it works, but I'm not really liking GIP, I know it echos KIP but we can't really re-use KIP either.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
some options:
- KRoxylicious IMprovement Process KRIMP.
- Kroxylicious Governance IMprovement Process KGIMP
GOVERNANCE.md
Outdated
| community review. | ||
| 6. **Template:** New GDR files must use the template located | ||
| at [decision-records/TEMPLATE.md](decision-records/TEMPLATE.md). | ||
| 7. **Review:** We follow the [Decision-Making](#decision-making) policy. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should Governance Changes have a higher bar? I think it would be a bit dodgy if a single Code Owner could change some aspect of Governance with just their own approval.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, definitely but we already define voting as simple majority. So maybe governance changes skip lazy consensus and go direct to vote?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
was thinking on this as I've commented elsewhere. It would be nice to use the general Decision Making process without having to diverge. Maybe Lazy Consensus as a step 1 is fine, as long as a Code Owner is responsible for declaring when the Decision Making Period is open. So it's visible and we need someone within the Project on-board.
|
Thanks for getting this started @robobario |
Co-authored-by: Sam Barker <sam@quadrocket.co.uk> Signed-off-by: Robert Young <robertyoungnz@gmail.com>
Signed-off-by: Robert Young <robertyoungnz@gmail.com>
This means that there must be buy-in from someone who has a role within Kroxylicious. Seems like a reasonable requirement for a governance change! Signed-off-by: Robert Young <robertyoungnz@gmail.com>
We want to record the Rejection of proposals so that we can refer to them in future. Signed-off-by: Robert Young <robertyoungnz@gmail.com>
Proposes a process for changing .. processes?